import { login, logout } from '@/api/user'
// 用户相关的状态管理
export default {
  state: {
    username: '',
    token: '',
    islogin: false
  },
  mutations: {
    //  用户登录，更新状态
    login (state, payload) {
      state.username = payload.username
      state.token = payload.token
      state.islogin = true
    },
    logout (state) {
      state.username = ''
      state.token = ''
      state.islogin = false
    }
  },
  actions: {
    // 实现异步登录
    // context: action 可以接受一个和store具有相同属性与方法的 context 参数
    // payload: 额外在方法中需要处理的数据
    loginAsync (context, payload) {
      const { username, password } = payload
      // 调用登录api方法
      return login(username, password).then(res => {
        context.commit('login', res)
        return {
          islogin: true
        }
      }).catch(e => console.log(e))
    },
    logoutAsync (context) {
      return logout().then(res => {
        context.commit('logout')
        return res
      })
    }
  }
}
